define("radioGroup",["lodash","reactDOM","core","santaProps","textCommon"],function(a,b,c,d,e){"use strict";var f="radioButton";var g="radio";var h=["radio0","refs","radio-input"];function i(b,c){var d=a.get(c,"value")||a.get(c,"defaultValue");return!!a.get(b,"required")&&!d}function j(b){return!!a.get(b,"customValidity")}function k(a,b,c){return{customError:j(a),valueMissing:i(b,c),valid:!(j(a)||i(b,c))}}var l=function(b,c){return{validity:k(b,c.props,c.data),validationMessage:a.get(b,"customValidity","")}};return{displayName:"RadioGroup",propTypes:{compData:d.Types.Component.compData.isRequired,compProp:d.Types.Component.compProp.isRequired,shouldResetComponent:d.Types.RenderFlags.shouldResetComponent,isMobileView:d.Types.isMobileView},mixins:[c.compMixins.skinBasedComp,c.compMixins.runTimeCompData,e.textScaleMixin,c.compMixins.inputFocusMixin,c.compMixins.compStateMixin(l)],statics:{useSantaTypes:true,behaviors:a.assign({change:{methodName:"validate"},setCustomValidity:{methodName:"setCustomValidity",params:["customValidity"]}},c.compMixins.inputFocusMixin.INPUT_FOCUS_BEHAVIORS)},getInitialState:function(){return{customValidity:"",$mobile:this.props.isMobileView?"mobile":"desktop"}},componentWillReceiveProps:function(a){if(a.shouldResetComponent!==this.props.shouldResetComponent){this.setState({customValidity:""})}},setCustomValidity:function(a){this.setState({customValidity:a})},getFirstRadioInputDOMNode:function(){var c=a.get(this.refs,h);return b.findDOMNode(c)},getAllRadioInputsDOMNodes:function(){return a(this.refs).filter(function(a,b){return b.indexOf(g)===0}).values().map(function(b){return a.get(b,["refs","radio-input"])}).value()},focus:function(){var b=a.find(this.getAllRadioInputsDOMNodes(),"checked");var c=b||this.getFirstRadioInputDOMNode();c.focus()},blur:function(){a.forEach(this.getAllRadioInputsDOMNodes(),function(a){a.blur()})},validate:function(){this.handleAction("validate");return!(i(this.props.compProp,this.props.compData)||j(this.state))},setRadioSelected:function(a,b,c){this.updateData({value:a.value});this.handleAction("change",c)},createChildren:function(){return a.map(this.props.compData.options,this.createChildRadioButton)},createChildRadioButton:function(a,b){var c=this.props.compData.options.length;var d=b===c-1;var e={id:this.props.id+"radio"+b,ref:g+b,text:this.props.compData.options[b].label,groupName:this.props.id,key:"radio"+b+a.label,onChange:this.setRadioSelected.bind(this,a,b),buttonSize:this.props.compProp.buttonSize,previewState:this.getComponentPreviewState(),"data-error":!this.validate(),textStyle:this.getFontSize(),style:{}};if(!d){if(this.props.compProp.layout==="vertical"){e.style.marginBottom=this.props.compProp.buttonsMargin}else{e.style.marginRight=this.props.compProp.buttonsMargin}}var h=this.props.compData.value||this.props.compData.defaultValue;if(h===a.value){e.checked=true}return this.createChildComponent(a,"wysiwyg.viewer.components.inputs.RadioButton",f,e)},getSkinProperties:function(){var a={};a[this.props.compProp.layout+"-axis"]=true;return{"":{className:this.classSet(a)},items:{children:this.createChildren()}}}}});